package com.jiumi.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiumi.common.annotation.Excel;
import com.jiumi.common.core.domain.BaseEntity;
import lombok.Data;
/**
 * 订单信息对象 base_order_info
 *
 * @author jiumi
 * @date 2023-05-24
 */
@Data
public class BaseOrderInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;

    private String phonenumber;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal orderAmount;

    @Excel(name = "实际金额")
    private BigDecimal realAmount;

    /**
     * 订单状态
     * 0未支付
     * 1 部分付
     * 2 全部付
     */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 退款金额 */
    @Excel(name = "退款金额")
    private BigDecimal refundAmount;

    /** 退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;

    /** 有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expirationDate;

    /** 操作人 */
    @Excel(name = "操作人")
    private String operName;

    /** 退款操作人 */
    @Excel(name = "退款操作人")
    private String refundOper;
    @Excel(name = "备注")
    private String remark;
    private Long mealId;
    private String mealName;

    private Long[] courseIds;


    /** 订单详情信息 */
    private List<BaseOrderDetail> baseOrderDetailList;

    /**
     * 已支付金额
     */
    private BigDecimal paidAmount;

    private Integer queryType;
    private String authName;
    private String  createUserName;
    private String  createNickName;

}
